// node用过express库创建服务器
// const express = require('express')
// 引入库
const Koa = require('koa')
const serve = require('koa-static')
// 处理api请求的库
const proxy = require('koa2-proxy-middleware')

// 专门处理history模式的中间件
const { historyApiFallback } = require('koa2-connect-history-api-fallback');

// 创建服务器
const app = new Koa()

// 处理 history 路由产生的刷新空白问题
app.use(historyApiFallback())

// 处理api请求
app.use(proxy({
  targets: {
    // 后面的(.*)是一个正则,代表后面还有
    // 所有的包含/prod-api/的请求都会转载到(target:)对象
    '/prod-api/(.*)': {
      target: 'http://localhost:3001',
      changeOrigin: true,

      // 如果前端考虑安全或其他原因, 故意
      // 用跟后台不一样的地址发送api 可以在这
      // 做路径重写
      pathRewrite: {
        '/prod-api': '/api'
      }
    }
  }
}))

// 提供静态服务
// 传入 __dirname + "/public" 地址路径,会默认访问里面的index文件
app.use(serve(__dirname + "/public")) //将public下的代码静态化

// 开启服务器
app.listen(3333, () => {
  console.log('服务器创建成功:http://localhost:3333')
})